YouTube Live配信するbot
- ニュースのダイジェストを合成音声で配信
ナイーブにやるにはOBSを起動して配信し続ければよいが、できればheadlessでやりたい → ffmpegで良さそう - 既存の動画ではなく動的にコンテンツを生成したい。
-- 裏でバッチで動画ファイルを作り続ける?
ffmpegで配信する方法がある
- 基本的にはこれで良さそう?
- リアルタイムにエフェクトを合成したりするにはどうすれば良いか?
- ゲームのようなものを作ってそれをエンコしながら流すのだろう
- YouTubeで配信し続けるのはお金がかかる?
-- かからない
- 井戸端の任意のページを読む配信を続けるのは面白そう!
-- おもしろい!!
アウトバウンドの通信に制限がかかる可能性がある
ひとまず手元PCでやってみるか
- 静止画と音声を配信する例
- 素晴らしい
- 画像は1280×720にしてみる
ローカルPCからのVOICEVOX
通常起動OK
サーバとしての動作も見たい。mp3がDLできればよい
- これ借りよう
- waveでの書き出しに成功
音声が短すぎると配信がぶちぶちになってしまう。
オーディオストリームを生成した流し込むようなことがしたい・・
- これだー!
できた。
2つのWavファイルを順番に配信出来た。
動的に音声を作成しながら再生するのはどうすればよいか?
次々wavを作っていけば良さそうだけど、生成の方が早すぎるとファイルがどんどん作られてしまうので、今どこを再生しているか知りたい。
どこを再生しているかわからない状態でうまい事更新できないか?
出来ない気がする・・
全てのデータソースは手元に保存することにすればそこをぐるぐるループさせることはできる。
1時間分くらいのデータを作って、ループさせておく?
2時間くらい経ったらもう一つのループを作って、そちらに切り替える
とかかな
しかしこれだと動画を作るのと変わらないな
ストリーミングならではの何かが欲しい
ライセンス周り
- 音声
-- ずんだもん
--- もんだいなし
- 原稿
-- 注文の多い料理店
--- 問題なし
次の課題 どこまで再生したかわからない
人が制御するならこれでも良さそう
容量が無限にあるならこれでも良さそう
再生より生成の方が遅いのでループさせるのは仕方がない
ループの途中で強制的に次のループに切り替えたいことがある?
生成の方が絶対に遅いならどんどん生成すればよいだけの気もする
concatで画像と音声を合わせて指定する方法があるか?
2つそれぞれリストにすればOKなのか?
ロードマップ
-- アウトバウンド制限も心配だしローカルPCでひとまずやってみよう
- ffmpegでYouTubeLiveにストリームを流し続けるPoC -- ローカルPCからはDone
参考
- Dockerでの利用